// 顶部：仅类型导入
import Num from 'bignumber.js'
import type { IBignumber, NumTypeData } from './bignumber';

const BigNumberUtils: IBignumber = {
    /**
     * 加法运算，返回两个数的和。
     * @param num1 第一个操作数
     * @param num2 第二个操作数
     * @returns 两个数的和
     */
    add(num1: NumTypeData, num2: NumTypeData): number {
        return new Num(num1).plus(num2).toNumber()
    },
    /**
     * 减法运算，返回两个数的差。
     * @param num1 第一个操作数
     * @param num2 第二个操作数
     * @returns 两个数的差
     */
    subtract(num1: NumTypeData, num2: NumTypeData): number {
        return new Num(num1).minus(num2).toNumber()
    },
    /**
     * 乘法运算，返回两个数的积。
     * @param num1 第一个操作数
     * @param num2 第二个操作数
     * @returns 两个数的积
     */
    multiply(num1: NumTypeData, num2: NumTypeData): number {
        return new Num(num1).times(num2).toNumber()
    },
    /**
     * 除法运算，返回两个数的商。
     * @param num1 第一个操作数
     * @param num2 第二个操作数
     * @returns 两个数的商
     */
    divide(num1: NumTypeData, num2: NumTypeData): number {
        return new Num(num1).div(num2).toNumber()
    },
}

export default BigNumberUtils
